package main

import "fmt"

func main() {
	//var + make法声明
	var numsMap map[int]int
	numsMap = make(map[int]int)
	numsMap[0] = 1
	numsMap[1] = 2

	for k, v := range numsMap {
		fmt.Println(k, " ", v)
	}

	//直接make法声明
	numsMap2 := make(map[int]int)
	//numsMap2 := make(map[int]int, 8) //也可以声明的时候指定长度
	numsMap2[1] = 3
	numsMap2[2] = 5
	fmt.Println(numsMap2)

	//声明的时候赋予初始值
	myMap := map[string]int{"k1": 1, "k2": 2, "k3": 3}
	myMap2 := map[string]interface{}{"k1": 1, "k2": "value2"}
	myMap3 := map[string]byte{}
	myMap3["k1"] = 'a'
	myMap3["k2"] = 'b'

	fmt.Println(myMap)  //map[k1:1 k2:2 k3:3]
	fmt.Println(myMap2) //map[k1:1 k2:value2]
	fmt.Println(myMap3) //map[k1:97 k2:98]

}
